/** 如果复用同一个正则,且这个正则是全局匹配(g)
 *  需要注意,上一次匹配完后的lastIndex会保存(非全局匹配正则 则不会保存)
 *  在下一次使用这个正则进行匹配时,会从lastIndex保存的位置开始匹配
 *  这可能不是你想要的
 *  故需要手动将lastIndex清零*/

const reg = /a/g;
//const reg = /a/;
//
console.log(reg.test('abc'));// true
console.log('reg.lastIndex:', reg.lastIndex); //1
//
console.log(reg.test('abc'));// false
console.log('reg.lastIndex:', reg.lastIndex); //0
/** ↑此时才会将reg.lastIndex自动置为0*/
//
/*const reg = /a/g;
console.log(reg.test('abc'));// true
reg.lastIndex = 0;
console.log(reg.test('abc'));// true*/


// 但是match方法是一个例外会自动还原(text.match(reg))
// 但为了便于记忆 必要的话 还是统一将reg.lastIndex手动置为0好 (大概是字符串的正则方法都会统一自动将lastIndex置为0)
/*const reg = /a/g;
console.log('abc'.match(reg)); //[ 'a' ]
console.log('reg.lastIndex:',reg.lastIndex); //0 ←被自动还原了
console.log('abc'.match(reg)); //[ 'a' ]
console.log('reg.lastIndex:',reg.lastIndex); //0
console.log('aabbaabb'.match(reg)); //[ 'a', 'a', 'a', 'a' ]
console.log('reg.lastIndex:',reg.lastIndex); //0*/
//
/*
const reg = /a/;
console.log('abc'.match(reg)); //[ 'a', index: 0, input: 'abc', groups: undefined ]
console.log('reg.lastIndex:',reg.lastIndex); //0 ←被自动还原了
console.log('abc'.match(reg)); //[ 'a', index: 0, input: 'abc', groups: undefined ]
console.log('reg.lastIndex:',reg.lastIndex); //0
console.log('aabbaabb'.match(reg)); //[ 'a', index: 0, input: 'aabbaabb', groups: undefined ]
console.log('reg.lastIndex:',reg.lastIndex); //0
*/
